package mb.admin.webbean;

import java.util.ArrayList;

import javax.faces.model.SelectItem;

import mb.admin.dao.CustomersDAO;
import mb.admin.data.CustomersData;

/**
 * Manager obsługujący widok customers.jsp
 * 
 * @author Michał Budziło
 * 
 */
public class CustomersManager {
	private CustomersDAO dao;
	private ArrayList<CustomersData> dataList;
	private CustomersData editedData;
	private ArrayList<SelectItem> uzytkownicyList;

	/**
	 * Konstruktor
	 */
	public CustomersManager() {
		dataList = new ArrayList<CustomersData>();
		dao = new CustomersDAO();
		uzytkownicyList = new ArrayList<SelectItem>();
		dataList = dao.getCustomerList();

	}

	/**
	 * Metoda przygotowuje dane przed edycją klienta
	 */
	public void prepareEditData() {

	}

	/**
	 * Metoda przygotowuje dane przez dodaniem nowego klienta
	 */
	public void prepareAddData() {
		editedData = new CustomersData();
		uzytkownicyList = dao.getUzytkownicyList();
		uzytkownicyList.add(new SelectItem("1", "dupa"));
	}

	/**
	 * Metoda edytuje klienta w bazie danych
	 */
	public void editData() {
		this.dao.updateData(editedData);
	}

	/**
	 * Metoda usuwa z bazy danych klienta
	 */
	public void deleteData() {
		this.dao.deleteData(editedData);
		refreshData();
	}

	/**
	 * Metoda dodaje do bazy danych nowego klienta
	 */
	public void addData() {
		this.dao.insertData(editedData);

		refreshData();
	}

	/**
	 * Metoda pobiera z bazy danych listę klientów
	 */
	public void refreshData() {
		dataList = dao.getCustomerList();
	}

	/**
	 * @return the dataList
	 */
	public ArrayList<CustomersData> getDataList() {
		return dataList;
	}

	/**
	 * @param dataList
	 *            the dataList to set
	 */
	public void setDataList(ArrayList<CustomersData> dataList) {
		this.dataList = dataList;
	}

	/**
	 * @return the editedData
	 */
	public CustomersData getEditedData() {
		return editedData;
	}

	/**
	 * @param editedData
	 *            the editedData to set
	 */
	public void setEditedData(CustomersData editedData) {
		this.editedData = editedData;
	}

	/**
	 * @return the uzytkownicyList
	 */
	public ArrayList<SelectItem> getUzytkownicyList() {
		return uzytkownicyList;
	}

	/**
	 * @param uzytkownicyList
	 *            the uzytkownicyList to set
	 */
	public void setUzytkownicyList(ArrayList<SelectItem> uzytkownicyList) {
		this.uzytkownicyList = uzytkownicyList;
	}

}